.#{$prefix}container {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.#{$prefix}container-body-el {
    position: relative;
    overflow: hidden;
    flex: 1;

    .#{$prefix}safari &,
    .#{$prefix}ie11 & {
        // Allows align: stretch to align items to the height of the tallest item
        // in an auto-heighted hbox layout.
        // can't use flex-basis: auto everywhere because it breaks percentage-sized children
        // in chrome: https://bugs.chromium.org/p/chromium/issues/detail?id=680484
        flex-basis: auto;
    }
}

// The body sizer element is a workaround for https://bugs.webkit.org/show_bug.cgi?id=137730
// It wraps the body-el so that percentage sizes may be used on its child elements.
.#{$prefix}body-sizer-el {
    flex: 1;
    position: relative;

    > .#{$prefix}container-body-el {
        position: absolute;
        // height and width 100% allow percentage sizing to work on child elements in safari
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
    }
}

// Workaround for IE11 issue where vertically flexed elements (such as body-el/body-wrap-el)
// are not constrained to the max-height of their container if the container has no "height".
// See https://sencha.jira.com/browse/EXTJS-24498
.#{$prefix}ie11 .#{$prefix}container.#{$prefix}max-height-wrapped {
    flex-direction: row;
}

.#{$prefix}max-height-el {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    overflow: hidden;
}
